/* #include<stdio.h>
#include<signal.h>
#include<unistd.h>
void handle(int sign)
{
    printf("我收到了一个%d信号\n",sign);
    // 这里需要加\n的，因为显示器文件默认行缓冲，如果你不加\n，默认就是全缓冲；
    // 也就是只有语言级缓冲区被写满，才会刷新到文件的内核缓冲区中
    // 此时才能看到输出，他会输出一大堆的语句
}
int main()
{
    signal(2,handle);
    while(1)
    {
        sleep(1);
        raise(2);
    }
    return 0;
} */
#include<signal.h>
#include<stdio.h>
#include<unistd.h>
void handler(int sign)
{
    printf("收到了一个信号%d\n",sign);
}
int main()
{
    //首先将信号捕捉
    signal(SIGALRM,handler);
    //设置一个5秒的alarm闹钟，5秒后内核会给该进程发送SIGALRM信号
    //进程收到SIGALRM信号后会执行handler函数
    alarm(5);
    //暂停进程等待信号
    pause();
    return 0;
}